package cn.iocoder.yudao.module.promotion.dal.mysql.prizedraw;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.promotion.controller.admin.prizedraw.vo.PrizeDrawSettingBatchPageReqVO;
import cn.iocoder.yudao.module.promotion.controller.admin.prizedraw.vo.PrizeDrawSettingBatchRespVO;
import cn.iocoder.yudao.module.promotion.dal.dataobject.prizedraw.PrizeDrawSettingBatchDO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 抽奖设置商品批次 Mapper
 *
 * @author 芋道源码
 */
@Mapper
public interface PrizeDrawSettingBatchMapper extends BaseMapperX<PrizeDrawSettingBatchDO> {
    /**
     * 分页查询
     *
     * @param dto  查询条件
     * @return 分页结果
     */
    PageResult<PrizeDrawSettingBatchRespVO> paging(@Param("request") PrizeDrawSettingBatchPageReqVO dto);

    /**
     * 单个查询
     *
     * @param id 主键
     * @return 结果
     */
    PrizeDrawSettingBatchRespVO single(Long id);

    /**
     * 取时间交集判定是否有重复
     *
     * @param batch 抽奖设置商品批次信息
     * @return 交集数量
     */
    Long intersection(@Param("request") PrizeDrawSettingBatchDO batch);

    /**
     * 取时间交集判定是否有重复
     *
     * @param batch 抽奖设置商品批次信息
     * @return 交集数量
     */
    PrizeDrawSettingBatchRespVO intersectionVo(@Param("request") PrizeDrawSettingBatchDO batch);

}